// Created by WXX on 2021/11/18 9:37
#include "MyTree.h"

/**
 * 执行用时：16 ms, 在所有 C++ 提交中击败了73.23%的用户
 * 内存消耗：23 MB, 在所有 C++ 提交中击败了94.40%的用户
 */
class Solution {
public:
    int ans = 0;

    int findTilt(TreeNode* root) {
        dfs(root);
        return ans;
    }

    int dfs(TreeNode* root) {

        if (!root) return 0;
        int l = dfs(root->left), r = dfs(root->right);
        ans += abs(l - r);
        return l + r + root->val;
    }
};

int main() {

    int nu = INT_MAX;
    vector<int> nums = {
            1,
            2, 3
    };
    TreeNode *root = MyTree(nums).getRoot();
    cout << Solution().findTilt(root) << endl;  // 1

    return 0;
}
